<?php

/**
 * Provides the base template for view objects.
 *
 * @author Niels Janssen
 * @since 2009-04-20
 * @abstract 
 */
abstract class View
{
	/**
	 * Renders the view to whatever format is required.
	 * 
	 * @return string
	 */
	abstract function render();
	
	/**
	 * Assigns a variable to the view that is to be rendered.
	 *
	 * @param string $key
	 * @param mixed $value
	 */
	abstract function assign( $key, $value );
	
	/**
	 * Assigns an array of key/value pairs to the view.
	 *
	 * @param array $variables
	 */
	abstract function assignArray( array $variables );
}